package com.zbkj.service.util;//package com.zbkj.service.util;
//
//import cn.hutool.core.util.StrUtil;
//import com.zbkj.common.constants.IntegralDetailConstants;
//import com.zbkj.common.model.Integral.IntegralParameter;
//import com.zbkj.common.model.user.UserIntegral;
//import com.zbkj.common.model.user.UserIntegralDetail;
//import com.zbkj.common.utils.DateUtil;
//import com.zbkj.service.service.IntegralParameterService;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.stereotype.Component;
//
//import java.math.BigDecimal;
//import java.math.RoundingMode;
//
///**
// * @author dandelion
// * change:setting->edit->file and template
// * ->include->File Header
// */
//
//@Component
//public class IntegralUtilsss {
//    @Autowired
//    private  IntegralParameterService integralParameterService;
//
//    // 获取积分参数配置， id为方案1
//    static IntegralParameter integralParameter = integralParameterService.getIntegralParameter(1);
//
//    /*
//    * 通过积分类型获取积分的值
//    **/
//    public static BigDecimal getIntegralByType(UserIntegral userIntegral, String integralType) {
//        switch (integralType) {
//            case IntegralDetailConstants.INTEGRAL_TYPE_VALUE_ADD:return userIntegral.getValueAddIntegral();
//            case IntegralDetailConstants.INTEGRAL_TYPE_GREEN:return userIntegral.getGreenIntegral();
//            case IntegralDetailConstants.INTEGRAL_TYPE_CONTRIBUTION:return userIntegral.getContributionIntegral();
//            case IntegralDetailConstants.INTEGRAL_TYPE_BALANCE:return userIntegral.getBalance();
//            case IntegralDetailConstants.INTEGRAL_TYPE_CB_FUNDS:return userIntegral.getCbfunds();
//        }
//        return BigDecimal.ZERO;
//    }
//
//    /*
//    * 创建积分明细表
//    * uid：用户id
//    * integralType：'积分类型：0：增值积分 ，1：绿色积分，2：贡献值， 3：余额 ， 4：cb基金',
//    * changeType： 变化值类型 ： 0：增加， 1：减少
//    * value：变化值
//    * reason：原因（来源或去向）
//    * remainder：积分变化后的剩余*/
//    public static UserIntegralDetail createIntegralDetail(Integer uid, String integralType, Integer changeType, BigDecimal value, String reason, BigDecimal remainder) {
//        UserIntegralDetail userIntegralDetail = new UserIntegralDetail();
//        userIntegralDetail.setUid(uid);
//        userIntegralDetail.setIntegralType(integralType);
//        userIntegralDetail.setChangeType(changeType);
//        userIntegralDetail.setValue(value);
//        userIntegralDetail.setReason(reason);
//        userIntegralDetail.setRemainder(remainder);
//        userIntegralDetail.setUpdateTime(DateUtil.nowDateTime());
//        return  userIntegralDetail;
//    }
//
//    /*
//     * 消费时产生的增值积分变化（只是变化值，不算当前积分值）*/
//    public static BigDecimal consumeTransInValueAdd (BigDecimal consumeSpent) {
//        IntegralParameter integralParameter = integralParameterService.getIntegralParameter(1);
//        return consumeSpent.multiply(integralParameter.getMultipleParameter());
//    }
//
//    /*
//     * 消费时产生的绿色积分变化（只是变化值，不算当前积分值）*/
//    public static BigDecimal consumeTransInGreen (BigDecimal consumeSpent) {
////        IntegralParameter integralParameter = integralParameterService.getIntegralParameter(1);
//        return consumeSpent.multiply(integralParameter.getGreenParameter());
//    }
//    /*
//     * 消费时产生的贡献值变化（只是变化值，不算当前积分值）*/
//    public static BigDecimal consumeTransInContribution (BigDecimal consumeSpent, Boolean isFirst, Boolean isShare) {
////        IntegralParameter integralParameter = integralParameterService.getIntegralParameter(1);
//        BigDecimal firstGive = BigDecimal.ZERO;
//        BigDecimal shareGive = BigDecimal.ZERO;
//        if(isFirst) { // 首单
//             firstGive = consumeSpent.multiply(integralParameter.getFirstParameter());
//        }
//        if(isShare){  // 分享
//             shareGive = consumeSpent.multiply(integralParameter.getShareParameter());
//        }
//        return firstGive.add(shareGive);
//    }
//    /*
//     * 补贴逻辑
//     * totalTurnover：总营业额/天
//     * integralRemainder：个人增值积分/余额剩余值
//     * allIntegral：平台总增值积分/余额*/
//    public static BigDecimal subsidyLogic(BigDecimal totalTurnover,BigDecimal integralRemainder, BigDecimal allIntegral ) {
//        return totalTurnover.multiply(integralParameter.getSubsidyParameter()).multiply(integralRemainder).divide(allIntegral, 2, RoundingMode.HALF_UP);
//    }
//
//    /*
//     * 增值积分转余额
//     * principal：本金补贴
//     * valueAdd：增值积分补贴
//    */
//    public static BigDecimal valueAddTransInBalance(BigDecimal principal, BigDecimal valueAdd) {
//        return principal.add(valueAdd);
//    }
//}
